#include <cstdio>

#include "Scene.hpp"
#include "XShadow.hpp"

#include "A.hpp"


A::A() {
    printf("%p A()\n", this);
}

A::~A() {
    printf("%p ~A()\n", this);
}

class A_XShadow : XShadow {
public:
    A_XShadow() {
        printf("%p A_XShadow()\n", this);
    }

    ~A_XShadow() {
        printf("%p ~A_XShadow()\n", this);
    }
};

static struct ADescriptor {
    ADescriptor() {
        Scene::RegisterSimpleType<A>();
        Scene::AddShadowClass<A, A_XShadow, XShadow>();
    }
} adescriptor;
